The present invention is generally directed to a system and method for using a memory management unit to reduce memory requirements for operation of a computer peripheral device. More particularly, the preferred embodiment of the present invention is useful for reducing the memory requirements for operation of a laser printer.
A laser printer is a computer peripheral device for producing printed copy output of digital data. Such a peripheral device is typically coupled to data processing equipment, such as a host computer or a local area network. In such an arrangement, the host computer transmits digital data to the laser printer which produces a graphic image representative of the received data. A typical laser printer may contain a microprocessor which responds to a control program, such as PostScript.RTM..sup.1, by translating data and instructions from the host computer into the scan and print patterns used by the laser printer. The instructions received by the laser printer are employed by the microprocessor responding to the control program to control the printing apparatus (the engine) of the laser printer. FNT .sup.1 PostScript.RTM. is sold by Adobe Systems, Inc., Mountain View, Calif. 94039
In addition to a microprocessor, a typical laser printer may also contain a digital memory. Such memory may include a read-only memory ("ROM") containing the control program for the microprocessor and information describing, for example, the text fonts which are supported by the laser printer, and a random access memory ("RAM") for storing data. When the host computer transmits data to the laser printer, the microprocessor translates the received data into a bit map of the pattern of dots that comprise the text or graphics as they are to appear on a printed page. This process is known as rendering and the bit map is comprised of rendered data. The rendered data are then written into the RAM by the microprocessor. After data for an entire page have been received from the host and written as rendered data into the RAM, the rendered data are read from the RAM by the microprocessor and used to control operation of the laser printer engine. Printing is actually accomplished by the engine, the component of the laser printer which physically conveys the image onto the page.
Because the laser printer prints each single page only after receiving and rendering all of the data for that page, the RAM must be of sufficient size to hold the amount of rendered data associated with a page. In a typical application, such as a page rendered using the PostScript.RTM. printer control program, the rendered image of a page may comprise more than 1 megabyte ("MB") of data. In addition to rendered data storage, the printer control program itself may occupy 0.5 MB of RAM storage. As a result, total RAM storage requirements may be as great as 2 MB to allow printing of a single page.
These representative storage requirements are consistent with a print density of 300 dots per inch ("DPI"). Some laser printer applications require higher density printing, such as 480 or 600 DPI. Higher density printing allows finer resolution of the printed text and graphics. However, higher density printing also requires an increased number of dots to form an image on the page. Consequently, higher density printing operation of a laser printer increases the RAM storage requirements of the laser printer. Such large RAM requirements often result in higher cost and slower operation of a laser printer and, thus, have limited the application of laser printers with memory-intensive operations, such as high density printing, in the past.
Prior art attempts at improving operational speed in managing large amounts of data in computer peripheral devices such as laser printers have principally relied on increasing the amount of on-board physical memory, i.e., RAM. Generally, physical memory is distinguished from virtual memory in that physical memory is directly addressable by the microprocessor. A virtual memory system requires address translation techniques, well known in the art, to convert the virtual address to the physical address in RAM or in a mass storage device such as a disk drive. Prior art designs of computer peripheral devices have generally lacked these virtual memory techniques. In such prior art designs, applications that required 2 MB of RAM storage required at least 2 MB of on-board physical memory in the laser printer. Integrated circuits including on-board RAM constitute a substantial portion of the cost of a laser printer. Thus, providing sufficient RAM in a laser printer for memory intensive applications, such as high density printing or advanced graphics capability, adds substantially to unit cost; a larger RAM also occupies considerable "real estate" in a printed circuit in the laser printer, and reduces system reliability for the laser printer. Thus, the net effect in such prior art designs is to increase the overall cost and reduce the operational effectiveness of the laser printer.
The present invention overcomes these limitations in memory-intensive operations and provides other advantages over the prior art. The present invention provides an on-board memory management unit to manage the storage of data and reduce memory requirements. The present invention allows virtually-addressed data to be stored in a compressed format in physical memory where they are not directly accessed by the microprocessor. Storage and retrieval in virtual memory is controlled by a memory management unit integral to the invention. The memory-management unit responds to a software control program which monitors system status and directs memory management unit action. The memory management unit provides address translation to create a virtual memory system in which data are moved within the RAM, rather than between RAM and disk. Storing data in a compressed format reduces the total memory required for data storage. Reduction in memory requirement in turn reduces system cost and complexity and improves system reliability.